/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Modele;

import Observeur.Observable;
import Observeur.Observeur;
import java.util.ArrayList;

/**
 *
 * @author 20cent
 */
public class ModelContainer<T> extends ArrayList<T> implements Observable{
    
     private ArrayList<Observeur> observeurs;
    
    public ModelContainer() {
        observeurs = new ArrayList<>();
    }

    @Override
    public boolean add(T e) {
        super.add(e);
        notifierObserveurs(e.getClass().getSimpleName());
        return true;
    }
    
    

    @Override
    public void ajouterObserveur(Observeur obs) {
        observeurs.add(obs);
    }

    @Override
    public void supprimerObserveur(Observeur obs) {
        observeurs.remove(obs);
    }

    @Override
    public void notifierObserveurs(String str) {
        for(Observeur observeur : observeurs){
            observeur.update(str);
        }
    }
   
}
